Сведения о события и мероприятиях в сфере культуры, данные о которых внесены в автоматизированную информационную систему “Единое информационное пространство в сфере культуры”
Дата актаульности: 21.01.2020
Источник: данные Министерства Культуры РФ https://opendata.mkrf.ru/opendata/7705851331-events
Загрузка данных осуществляется с помощью функции get_data_from_dir из extract_data_from_json.R parsed_data <- get_data_from_dir('.\\data\\source\\data-15-structure-2')
Так как функция может сохранять получившийся dataframe, для дальнейшей работы можно использовать ранее полученный результат:
parsed_data <- readRDS('.\\data\\prepared\\20200121220605.rds')
df <- preprocess(parsed_data)
summary(df)
## Name ShortDescription AgeRestriction Price
## Length:411930 Length:411930 0 :195762 Min. : 0.00
## Class :character Class :character 12: 66458 1st Qu.: 0.00
## Mode :character Mode :character 16: 26690 Median : 0.00
## 18: 12250 Mean : 77.73
## 6 :110770 3rd Qu.: 0.00
## Max. :52000.00
##
## MaxPrice Category StartDttm
## Min. :0.000e+00 Встречи :189169 Min. :2017-01-01 00:00:00
## 1st Qu.:0.000e+00 Концерты : 67367 1st Qu.:2018-02-14 14:00:00
## Median :0.000e+00 Выставки : 54209 Median :2018-11-24 18:00:00
## Mean :2.708e+05 Праздники: 42794 Mean :2018-10-09 08:22:18
## 3rd Qu.:0.000e+00 Спектакли: 22495 3rd Qu.:2019-06-21 17:00:00
## Max. :1.001e+11 Прочие : 18422 Max. :2019-12-31 23:30:00
## NA's :15255 (Other) : 17474
## EndDttm PlaceName LocaleName
## Min. :2017-01-01 12:59:00 Length:411930 Length:411930
## 1st Qu.:2018-03-07 13:00:00 Class :character Class :character
## Median :2018-12-14 18:00:00 Mode :character Mode :character
## Mean :2018-10-30 20:43:26
## 3rd Qu.:2019-07-16 08:22:30
## Max. :2026-12-09 14:00:00
##
## Duration Lat Lng
## Length:411930 Min. :-179.13 Min. :-179.48
## Class :difftime 1st Qu.: 47.11 1st Qu.: 38.10
## Mode :numeric Median : 53.05 Median : 42.05
## Mean : 52.83 Mean : 49.89
## 3rd Qu.: 56.15 3rd Qu.: 53.08
## Max. : 179.35 Max. : 179.35
##
library(ggplot2)
library(scales)
df %>%
mutate(StartYear = format(StartDttm, "%Y")) %>%
mutate(duration_days = difftime(EndDttm, StartDttm, units = 'days')) %>%
filter(duration_days >=1 & duration_days <= 365 ) %>%
ggplot(aes(y=Price, x=duration_days, color=Category)) +
geom_point(alpha=0.7) +
facet_wrap(~ StartYear) +
labs(y='Цена',
x='Длительность',
color='Категория мероприятия',
title='Цена и длительность мероприятия',
subtitle='2017 - 2019 гг') +
theme_light()
## Don't know how to automatically pick scale for object of type difftime. Defaulting to continuous.
df %>%
mutate(StratYear = format(StartDttm, "%Y")) %>%
ggplot(aes(x=StratYear)) +
geom_bar(aes(fill=AgeRestriction), position='fill') +
labs(y='',
x='Год',
fill='Ограничение по возрасту',
title='Процент мероприятий с разными возрастными ограничениями',
subtitle='2017 - 2019 гг') +
theme_light()
df %>%
mutate(duration_days = difftime(EndDttm, StartDttm, units = 'days')) %>%
filter(duration_days >=1 & duration_days <= 365 ) %>%
ggplot(aes(x=AgeRestriction)) +
geom_bar(aes(fill=Category), position='fill') +
labs(y='',
x='Возрастное ограничение',
fill='Категория мероприятия',
title='Категории мероприятий с разными возрастными ограничениями',
subtitle='2017 - 2019 гг') +
theme_light()
library(leaflet)
## Warning: package 'leaflet' was built under R version 3.6.2
df_for_map <- df %>%
filter(StartDttm >= '2019-01-01 00:00:00')
labels <- sprintf(
"<strong>%s</strong><br/>%s",
df_for_map$Name, df_for_map$PlaceName
) %>% lapply(htmltools::HTML)
my_map <- df_for_map %>%
leaflet() %>%
addTiles %>%
addMarkers(lat = ~Lat, lng = ~Lng,
clusterOptions = markerClusterOptions(),
label = labels,
labelOptions = labelOptions(
style = list("font-weight" = "normal", padding = "3px 8px"),
textsize = "15px",
direction = "auto"))
my_map